#ifndef DATABASEMANAGER_H
#define DATABASEMANAGER_H

#include <QObject>
#include <QSqlDatabase>

class DatabaseManager : public QObject
{
    Q_OBJECT
public:
    explicit DatabaseManager(QObject *parent = nullptr);
    ~DatabaseManager();

    DatabaseManager(const DatabaseManager&) = delete;
    DatabaseManager& operator=(const DatabaseManager&) = delete;

    // 在这里声明我们需要的业务函数
    bool registerUser(const QString& username, const QString& passwordHash);
    int validateUser(const QString& username, const QString& passwordHash);
    QString getUsername(int userId);                    //查询用户名
    int getUserId(const QString& username);             //查询用户ID

    bool areAlreadyFriends(int userId1, int userId2);   //查询两个人是否是好友
    // 使用 QVariantMap 来方便地存储 user_id 和 username
    QList<QVariantMap> getFriends(int userId);

    bool addFriend(int userId1, int userId2);           //添加好友

    // 返回一个包含用户所有信息的 QVariantMap
    QVariantMap getUserInfo(int userId);

private:
    void initDatabase(); // 私有的初始化函数

    QSqlDatabase m_db; // 数据库连接对象

signals:
};

#endif // DATABASEMANAGER_H
